import java.util.*;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
 * Write a description of class Datum here.
 * 
 * @Niek Heuvink 
 * @Versie 1.0 - 18/11/2010
 */
public class Datum implements Serializable
{
    // instance variables - replace the example below with your own
    private int dag;
    private int maand;
    private int jaar;

    /**
     * Constructor for objects of class Datum
     */
    public Datum(int dag, int maand, int jaar){
        this.dag = dag;
        this.maand = maand;
        this.jaar = jaar;        
    }
    
    //Haalt dag op
    public int getDag(){
        return dag;
    }
    
    //Haalt maand op
    public int getMaand(){
        return maand;
    }
    
    //Haalt jaar op
    public int getJaar(){
        return jaar;
    }
    
    //zelfde datum
    public boolean zelfdeDatum(Datum datum){
        boolean zelfde = false;
        if(jaar == datum.getJaar() && maand == datum.getMaand() && dag == datum.getDag() ){
            zelfde = true;
        }
        return zelfde;
    }
    
    //Vergelijkt de datum waar je in zit met de datum die je invult
    public boolean vergelijkDatum(Datum datum){
        boolean isGroter = false;
        //Als jaar groter is dan jaar van ingevoerde datum
        if(jaar > datum.getJaar()){
            isGroter = true;
        }
        //Als jaar gelijk is aan jaar van ingevoerde datum & maand is groter dan maand ingevoerde datum
        if(jaar == datum.getJaar()){
            if(maand > datum.getMaand()){
                isGroter = true;
            }
            //Als maand gelijk is aan maand van ingevoerde datum & dag is groter dan dag ingevoerde datum
            if(maand == datum.getMaand()){
                if(dag > datum.getDag()){
                    isGroter = true;
                }
            }
        }
        return isGroter;
    }
    
    public boolean overDatum(){
        boolean overDatum = false;
        if (jaar < huidigeJaar() ) {
            overDatum = true;
        }
        if (jaar <= huidigeJaar() ) {
            if(maand < huidigeMaand() ){
                overDatum = true;
            }
        }
        if(jaar <= huidigeJaar() ){       
            if(maand <= huidigeMaand() ){     
                if(dag < huidigeDag() ){
                    overDatum = true;
                }     
            }
        }
        return overDatum;
    }
    
    //Haalt huidige jaartal op
    public static int huidigeJaar() {
        Calendar calendar = Calendar.getInstance();
        int jaarhuidig = calendar.get( Calendar.YEAR );
        return jaarhuidig;
    }
    
    //Haalt huidige maand op
    public static int huidigeMaand() {
        Calendar calendar = Calendar.getInstance();
        int maandhuidig = (calendar.get(Calendar.MONTH) + 1);
        return maandhuidig;
    }
    
    //Haalt huidige dag op
    public static int huidigeDag() {
        Calendar calendar = Calendar.getInstance();
        int daghuidig = calendar.get( Calendar.DAY_OF_MONTH );
        return daghuidig;
    }
    
    //Haalt huidige datum op
    public static String getHuidigeDatum(){
        Calendar now = new GregorianCalendar();
        String huidigedatum = null;
        int maand = (now.get(Calendar.MONTH) + 1);
        huidigedatum = now.get(Calendar.DAY_OF_MONTH) + "-" + maand + "-" + now.get(Calendar.YEAR);
        return huidigedatum;
    }
    
    public String toString(){
        return dag + "-" + maand + "-" + jaar;
    }
}
